home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2007 December
/
PCWKCD1207B.iso
/
Blogowanie poza sfera
/
Flock 0.9.1.3 stable
/
flock-0.9.1.3.en-US.win32.exe
/
flock
/
components
/
flockLogger.js
< prev
next >
Wrap
Text File
|
2007-10-12
|
4KB
|
148 lines
//
// BEGIN FLOCK GPL
//
// Copyright Flock Inc. 2005-2007
// http://flock.com
//
// This file may be used under the terms of of the
// GNU General Public License Version 2 or later (the "GPL"),
// http://www.gnu.org/licenses/gpl.html
//
// Software distributed under the License is distributed on an "AS IS" basis,
// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
// for the specific language governing rights and limitations under the
// License.
//
// END FLOCK GPL
//
const Cc = Components.classes;
const Ci = Components.interfaces;
const CLASS_ID = Components.ID("{05428cec-9fd4-4955-afc9-eaaf4c6d9f9d}");
const CLASS_NAME = "Flock Logger";
const CONTRACT_ID = "@flock.com/logger;1";
function flockLogger()
{
this._service = Cc["@flock.com/logging-service;1"].getService(Ci.flockILoggingService);
}
flockLogger.prototype = {
_service: null,
_context: null,
init: function(aContext)
{
this._context = aContext;
},
debug: function(aMessage)
{
this._service.log(this._service.LEVEL_DEBUG, this._context, aMessage);
},
info: function(aMessage)
{
this._service.log(this._service.LEVEL_INFO, this._context, aMessage);
},
warn: function(aMessage)
{
this._service.log(this._service.LEVEL_WARN, this._context, aMessage);
},
error: function(aMessage)
{
this._service.log(this._service.LEVEL_ERROR, this._context, aMessage);
},
fatal: function(aMessage)
{
this._service.log(this._service.LEVEL_FATAL, this._context, aMessage);
},
// nsIClassInfo
getInterfaces: function(aCount)
{
var interfaces = [Ci.flockILogger, Ci.nsIClassInfo];
aCount.value = interfaces.length;
return interfaces;
},
// nsIClassInfo
getHelperForLanguage: function(aLanguage)
{
return null;
},
// nsIClassInfo
contractID: CONTRACT_ID,
// nsIClassInfo
classDescription: CLASS_NAME,
// nsIClassInfo
classID: CLASS_ID,
// nsIClassInfo
implementationLanguage: Components.interfaces.nsIProgrammingLanguage.JAVASCRIPT,
// nsIClassInfo
flags: null,
// nsISupports
QueryInterface: function(aIID)
{
if (!aIID.equals(Ci.nsISupports) && !aIID.equals(Ci.flockILogger) && !aIID.equals(Ci.nsIClassInfo))
throw Components.results.NS_ERROR_NO_INTERFACE;
return this;
}
};
/******************************************************************************
* XPCOM Functions for construction and registration
******************************************************************************/
var Module = {
_firstTime: true,
registerSelf: function(aCompMgr, aFileSpec, aLocation, aType)
{
if (this._firstTime) {
this._firstTime = false;
throw Components.results.NS_ERROR_FACTORY_REGISTER_AGAIN;
}
aCompMgr = aCompMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);
aCompMgr.registerFactoryLocation(CLASS_ID, CLASS_NAME, CONTRACT_ID, aFileSpec, aLocation, aType);
},
unregisterSelf: function(aCompMgr, aLocation, aType)
{
aCompMgr = aCompMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);
aCompMgr.unregisterFactoryLocation(CLASS_ID, aLocation);
},
getClassObject: function(aCompMgr, aCID, aIID)
{
if (!aIID.equals(Components.interfaces.nsIFactory))
throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
if (aCID.equals(CLASS_ID))
return Factory;
throw Components.results.NS_ERROR_NO_INTERFACE;
},
canUnload: function(aCompMgr) { return true; }
};
var Factory = {
createInstance: function(aOuter, aIID)
{
if (aOuter != null)
throw Components.results.NS_ERROR_NO_AGGREGATION;
return (new flockLogger()).QueryInterface(aIID);
}
};
function NSGetModule(aCompMgr, aFileSpec) { return Module; }